package com.sixth.controller;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.sixth.until.CommonResult;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;

/**
 * @program: tui-education
 * @description:
 * @author: 丁雅男
 * @create: 2022-04-27 20:27
 **/
@Controller
public class UploadController {
    @RequestMapping("/upload")
    @ResponseBody
    public CommonResult upload(MultipartFile file){
        try {
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1（杭州）为例，Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
            String endpoint = "oss-cn-beijing.aliyuncs.com";
// 阿里云账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维，请登录RAM控制台创建RAM用户。
            String accessKeyId = "LTAI5tN6qbGaSqHgiAZU1bT2";
            String accessKeySecret = "spo3sRZZ4gFeCWsPgr9HNnRJae8fsG";

// 创建OSSClient实例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

// 填写本地文件的完整路径。如果未指定本地路径，则默认从示例程序所属项目对应本地路径中上传文件流。
            InputStream inputStream = file.getInputStream();
            //获取上传的文件名
            String filename = file.getOriginalFilename();
            filename=System.currentTimeMillis() + filename;
// 依次填写Bucket名称（例如examplebucket）和Object完整路径（例如exampledir/exampleobject.txt）。Object完整路径中不能包含Bucket名称。
            ossClient.putObject("dyn-image",filename, inputStream);

// 关闭OSSClient。
            ossClient.shutdown();
            String url="https://dyn-image."+endpoint+"/"+filename;
            return new CommonResult(2000,"上传成功",url);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new CommonResult(5000,"上传失败",null);

    }
}
